package com.qf.day06.polymorphic;

import com.qf.day06.Animal;
import com.qf.day06.Dog;

/**
 * 大类型的对象转换为小类型 行不行？
 * 如果把一个不是Dog类型的对象（原来是一个Animal）转换为Dog，强换，会产生如下异常
 * java.lang.ClassCastException: com.qf.day06.Animal cannot be cast to com.qf.day06.Dog
 */
public class Demo03 {

    public static void main(String[] args) {

//        Animal animal = new Animal();
//        Dog dog = (Dog) animal;
//        System.out.println(dog);

        Dog dog = new Dog();
        dog.setName("旺财");

        // 变量a是Animal类型的
        Animal a = dog;
        System.out.println(a);
        a.eat();

        // ? 如果变量的类型确实是Dog类型，那么就可以强转成功
        Dog c = (Dog) a;
        System.out.println(c);


    }
}
